---
title: Architecture
slug: /v3/getting-started/architecture
version: '3.0'
section: docs
category: getting started
keywords:
---

![Substrate Client Architecture](../../../../src/images/docs/getting-started/substrate-arch.png)

The Substrate client is an application that runs a Substrate-based blockchain node. It consists of several components
that include, but are not limited to, the following:

- **Storage**: used to persist the evolving state of a Substrate blockchain. The
  blockchain network allows participants to reach trustless [consensus](/v3/advanced/consensus) about the
  state of storage. Substrate ships with a simple and highly efficient
  [key-value storage mechanism](/v3/advanced/storage).
- **Runtime**: the logic that defines how blocks are processed, including state transition logic. In Substrate, runtime code is
  compiled to [Wasm](/v3/getting-started/glossary#webassembly-wasm) and becomes part of the blockchain's
  storage state. This enables one of the defining features of a Substrate-based blockchain:
  [forkless runtime upgrades](/v3/runtime/upgrades#forkless-runtime-upgrades). Substrate clients may also
  include a "native runtime" that is compiled for the same platform as the client itself (as opposed to Wasm). The
  component of the client that dispatches calls to the runtime is known as the
  [executor](/v3/advanced/executor), whose role is to select between the native code and interpreted Wasm. Although the
  native runtime may offer a performance advantage, the executor will select to interpret the Wasm runtime if it
  implements a newer [version](/v3/runtime/upgrades#runtime-versioning).
- **Peer-to-peer network**: the capabilities that allow the client to communicate with other network participants. Substrate uses
  the Rust implementation of the [`libp2p` network stack](https://libp2p.io/) to achieve this.
- **Consensus**: the logic that allows network participants to agree on the state of the blockchain.
  Substrate makes it possible to supply custom consensus engines and also ships with several consensus mechanisms that
  have been built on top of [Web3 Foundation research](https://w3f-research.readthedocs.io/en/latest/index.html).
- **RPC** (remote procedure call): the capabilities that allow blockchain users to interact with the network. Substrate provides
  HTTP and WebSocket RPC servers.
- **Telemetry**: client metrics that are exposed by the embedded [Prometheus](https://prometheus.io/) server.
